The present invention relates to an integration technology for extending an application with a message-based user interface by an independent supplementary application.
According to the current state of the art applications executed by modern operating systems are offering their functionality by some sort of user interface. In many cases the user interfaces are of graphical nature and one is talking of so-called GUI (Graphical User Interface) applications. Microsoft Windows, IBM OS/2 or Mac OS are some well-known examples of modern operating systems providing such graphical user interface technology. According to this state of the art technology the operating system and the GUI application are exchanging information units, called messages, used on one hand to inform the GUI application of the particular user interactions with respect to the particular user interface. On the other hand the messages are used by the GUI application to requests changes of the particular user interface in response to reported user interactions. Further information may be found for instance in Charles Petzold, Programming the OS/2 Presentation Manager, Microsoft Press, Redmond 1989.
The handling and exchange of these messages via message queues exchanged by the operating system and the GUI application is done on a programming level, i.e. the source code level of the application, only; with the result that the setup and handling of an application""s particular user interface is an application internal aspect; other applications, i.e. the application""s xe2x80x9cexternal worldxe2x80x9d, are excluded from participating within the application""s particular user interface: Therefore the other applications cannot be integrated within the particular user interface of a certain application.
On the other hand there is a strong requirement that within the user interface of a certain application, for convenience for the further discussion it can be called the main application, other applications, for the further discussion we call them supplementary applications, can be integrated to for instance provide additional functions or to cooperate with the main application. The user of this particular interface should get the impression of interacting with a single application only.
Two technologies are available to cope with this problem.
In a first approach the source code of the main application is adapted accordingly, which means that additional program code for further user interface capabilities is included and provisions are integrated that, depending on user""s interactions with the user interface, supplementary application code is called and executed. Apparently this approach is only possible if the source code of the main application is available. Typically applications can be commercially bought in an executable, i.e. binary, version only with the result, that this first approach is excluded in almost all practical cases.
In a second approach the main application provides a set of application programming interfaces (API) which can be called by a supplementary application and which allow this supplementary application to participate within the processing of the main application. In this case, the supplementary application depends on the set of APIs provided by the existing main application. Functionalities and integration capabilities not supported by these APIs cannot be implemented and thus integration is only possible to the extend foreseen by the provider of the main application in terms of the set of APIs.
Thus the technical approaches for integration of GUI application, if available at all, are very limited.
The invention is based on the objective to provide an improved integration methodology supporting integration of a supplementary application within a main application and the main application""s user interface.
It is a further objective of the current invention that the proposed integration methodology provides integration without requiring any provisions within the main applications and without requiring invasive changes in the main application.
The objectives of the invention are solved by the independent claims. Further advantageous arrangements and embodiments of the invention are set forth in the respective subclaims.
The invention relates to a computerized method for dynamically extending a main application comprising a first user-interface-control by at least one supplementary application.
The method comprises a first-step of monitoring system-messages of a system-message-queue, said system-message-queue transferring one or more system-messages comprising user-interaction-requests to said main application, and determines if a monitored system-messages comprises a user-interaction-request for creating said first user-interface-control of said main application. In the affirmative case, an indicator is set that said user-interaction-request for creating said first user-interface-control has been detected. Said method comprises a second-step monitoring application-messages of an application-message-queue, said application-message-queue transferring one or more application-messages comprising a request for said main application, and associates in response to setting said indicator the next one or multitude of application-message with said monitored system-message. Said method interprets said next one or multitude of application-message as application-message comprising the request for creating said first user-interface-control by determining based on said next application-message a first user-interface-control-handle, which is used by said GUI system as unique identification of said first user-interface-control. Finally said method executes said supplementary application.
The current invention provides an integration technology for extending an application with a message-based user interface by an independent supplementary application. The current approach completely avoids rewriting or modifying and recompiling the existing application, which in most cases is not possible because the existing main application and the supplementary application which should be integrated are owned by different companies or different divisions within a company; in most cases the source code of the main application is therefore not available. Also the current approach does not depend on any API provided for integration purposes by the main application. Even the best set of APIs (the known approaches based on plug-ins also fall under this category) cannot provide all the functionality which might be needed at a future point in time. Restrictions set up by main applications distinguishing between GUI elements which are allowed to be modified and others which are not are removed completely. These advantages are achieved as the roles of the main application and the supplementary application to be integrated are reversed with respect to an important aspect: while in the state of the art approaches the main application controls under which circumstances and to which extend the supplementary application maybe integrated, these roles are reversed by the current invention; now it is the supplementary application only controlling the point of integration. The result is a proposed integration approach which is noninvasive, dynamic and transparent with respect to the main application.
The current invention provides an integration technology for extending an application with a message-based user interface by an independent supplementary application. The current approach completely avoids rewriting or modifying and recompiling the existing application, which in most cases is not possible because the existing main application and the supplementary application which should be integrated are owned by different companies or different divisions within a company; in most cases the source code of the main application is therefore not available. Also the current approach does not depend on any API provided for integration purposes by the main application. Even the best set of APIs (the known approaches based on plug-ins also fall under this category) cannot provide all the functionality which might be needed at a future point in time. Restrictions set up by main applications distinguishing between GUI elements which are allowed to be modified and others which are not are removed completely. These advantages are achieved as the roles of the main application and the supplementary application to be integrated are reversed with respect to an important aspect: while in the state of the art approaches the main application controls under which circumstances and to which extend the supplementary application maybe integrated, these roles are reversed by the current invention; now it is the supplementary application only controlling the point of integration. The result is a proposed integration approach which is noninvasive, dynamic and transparent with respect to the main application.
Moreover the suggested integration approach allows the supplementary to collect data from the main application""s user-interface and use it as additional input to the processing of the supplementary application. Based on the same mechanisms output data generated by the supplementary application can be propagate back to the main application again.
As an further advantage the invention supports the creation of supplementary user-interface-controls in context of the user-interface-controls of the main application. The user interface integration is seamless and a user has the impression of a homogeneous user-interface while actually the supplementary user-interface-control being responsive to user interactions is controlled by said supplementary application. This reduces the educational effort for users and provides him with a consistent look and feel. Assuming for example a word processor: after a document is written, there are certain actions possible using today""s word processors: save the document, perform spell checking, check hyphenation and many others. But the document cannot be sent as e-mail or stored in a document management system. Do this, other programs with other GUls, other keyboard settings, other help systems and so on have to be used. But all what actually is required is an additional button which invokes a function in an additional application which sends the document as e-mail or does a check-in into a document management system. The invention offers a new possibility to do this dynamically if other possibilities are not available.
Monitoring the application queue allows the supplementary application also to participate with the supplementary user-interface-control with respect changes of position, size etc. and other representation aspects of the main application""s user-interface-control context completing the impression that the supplementary user-interface-control is actually part of the main application.
As a further advantage the current teaching supports a two-way data exchange between main and supplementary application: the supplementary application can access via the first user-interface-control-handle user interface data from the main application or even can propagate modifications from the supplementary application to the main application.
With the proposed technique it is also possible to track and protocol by a supplementary application any user interactions of that user with the user-interface of the main application in a protocol record for later evaluation.
Another advantage is that the same mechanism can be used to simulate user interaction with the main application by inserting through a supplementary application stored user interactions into the main application for their processing.